package main

import "math/rand"

func main() {

}

type Solution struct {
	arr      []int
	original []int
}

func Constructor(nums []int) Solution {
	original := make([]int, len(nums))
	copy(original, nums)
	return Solution{
		original: original,
		arr:      nums,
	}
}

func (this *Solution) Reset() []int {
	copy(this.arr, this.original)
	return this.arr
}

func (this *Solution) Shuffle() []int {
	rand.Shuffle(len(this.arr), func(i, j int) {
		this.arr[i], this.arr[j] = this.arr[j], this.arr[i]
	})
	return this.arr
}
